Nginx as a reverse proxy for Apache

Nginx dan Apache

Nginx dan Apache adalah server web yang kuat. Kekuatan Apache dan kecepatan Nginx sudah sangat dikenal, Namun, keduanya memang memiliki kekurangan. Apache sulit di memori server sementara Nginx tidak dapat memproses PHP sendiri dan memerlukan bantuan PHP-FPM atau modul untuk konten dinamis.

Dalam catatan ini, kita akan menggabungkan dua server web untuk bisa mendapatkan hasil terbaik satu sama lain, Kita akan menetapkan Nginx sebagai prosesor konten statis dan Apache untuk memproses konten belakang dan dinamis.

Install and Konfigurasi Nginx

  • Update repositories

    1
    yum update
  • Install Epel repositories

    1
    yum install epel-release
  • Install Nginx di Centos 7

    1
    yum install nginx
  • Enable dan start Nginx service

    1
    2
    systemctl enable nginx
    systemctl start nginx
  • Membuat Konfigurasi Nginx

    1
    nano /etc/nginx/conf.d/default.conf

    contoh konfigurasi :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    server {
    listen 80;

    root /usr/share/nginx/html/;
    index index.php index.html index.htm;

    server_name _;

    location / {
    try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080/;

    }

    location ~ /\.ht {
    deny all;
    }
    }

Install dan Konfigurasi Apache

  • Install Apache web server:

    1
    yum install httpd
  • Start dan enable apache service:

    1
    2
    systemctl enable httpd
    systemctl start httpd
  • Konfigurasi Apache
    Kita perlu mengkonfigurasi Apache untuk menjadi backend, kita perlu mengkonfigurasi Apache pada port 8080:

    1
    vi /etc/httpd/conf/httpd.conf

    Temukan baris yang dimulai dengan “Listen”, ganti baris berikut dengan dibawah ini:

    1
    Listen 127.0.0.1:8080

    Kemudian temukan baris yang dimulai dengan “DocumentRoot” dan ubah seperti di bawah ini:

    1
    DocumentRoot "/path/folder root kita/"

    Save and Exit.

Install PHP v7.1.0

Hal pertama yang akan kita lakukan adalah menginstal tambahan CentOS7 repo yang berisi paket-paket yang diperlukan untuk PHP v7.1

1
2
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm

Aktifkan repositori php71 yang dinonaktifkan secara default:

1
2
yum install yum-utils -y
yum-config-manager --enable remi-php71

install PHP package:

1
yum --enablerepo=remi,remi-php71 install php-fpm php-common

Install common modules:

1
yum --enablerepo=remi,remi-php71 install php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

Konfigurasi PHP-FPM supaya berjalan di user apache

1
vi /etc/php-fpm.d/www.conf

Temukan and replace baris berikut:

1
2
user = apache
group = apache

dibawah baris ;listen = 127.0.0.1:9000 kita tambahkan file:

1
listen = /var/run/php-fpm/php-fpm.sock

Simpan file dengan menekan CTRL + X. Dan akhirnya, mulai php-fpm dan aktifkan saat boot:

1
2
systemctl start php-fpm.service
systemctl enable php-fpm.service

Sekian catatan ini, selamat mencoba dan semoga berhasil.